Many enterprises use collaboration systems, including content management systems and case management systems, that manage and store large amounts of data. The collaboration systems typically use different types of policy, workflow, and/or preference frameworks to aid the process of administering and accessing data in the content management system. Policies are generally used to centralize business rules, while workflows typically control a chain of actions, such as sequences of approvals that are to be performed when certain events occur. The policies and workflow combine to provide users of the content management system with access to the data they need in a timely manner without overloading the user with too much information.
Collaborative content management systems often provide ways for users to customize the behavior of the content management system with respect to their interaction with the system. Preferences, profiles, and subscriptions are examples of customization features provided by some content management systems. Preferences maintain settings that specify choices, courses of actions, or customization associated with a user or a group of users. Profiles correspond to instances of preferences related to a present user context. For example, a user may have a work profile in which she desires to receive notification of any meetings on certain projects when they are scheduled. The user may have a vacation profile in which she receives no notifications of meetings and is notified only of e-mail messages marked urgent. Subscriptions allow a user to specify conditions and actions to be taken when certain events occur. For example, a user may subscribe to any documents that are produced in a given project's workspace. The user is then notified when a new document is saved to the system or an existing document is revised.
As a user's preferences evolve, the user's profile may change to reflect new preferences. These changes to the user's profile may occur automatically by virtue of automatic profile extraction techniques described in the parent patent application Ser. No. 13/227,623 referenced above. Thus, the profile provides an up-to-date snapshot of a user's current interests and assignments.
Temporal databases can implicitly manage time-varying data, such as user preference profiles, by associating valid time and transaction time information with each profile record or row of a database table. In some contexts, the terms “valid time,” “valid event time,” and “user time” are used synonymously to denote the time when a fact is valid in the real world. On the other hand, the terms “transaction time” and “system time” are used synonymously to denote the time when a fact is stored in the database. SQL queries that involve both valid time and transaction time are called bi-temporal queries and the data is called bi-temporal data. The valid times are coalesced into a valid time period represented by a valid time start and a valid time end. Temporal database features have continued to evolve in several commercial databases.